package com.lelouch.examplecode.javabasic.jvm.gc;

/**
 * @author lcy
 * @create 2018-12-28 10:58
 */
public class MinorGC {
    private static final int _1MB = 1024*1024;
    public static void main(String[] args) {
        //testAllocation();
        testPretenureSizeThreshold();

    }

    //对象优先在eden分配
    //-Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
    public static void testAllocation(){
        byte[] allocation1,allocation2,allocation3,allocation4;
        allocation1 =new byte[2*_1MB];
        allocation2 =new byte[2*_1MB];
        allocation3 =new byte[2*_1MB];
        allocation4 =new byte[4*_1MB];
    }

    //大对象直接进入老年代
    //-Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=3145728(3M)
    //-XX:PretenureSizeThreshold=3145728该参数只对Serial和ParNew收集器有效
    //-Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=3145728(3M) -XX:+UseSerialGC
    public static void testPretenureSizeThreshold(){
        byte[] allcation;
        allcation=new byte[4*_1MB];
    }
}
